build: update all non-major dependencies #22231
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.0.14
->0.0.15
4.3.2
->4.3.3
0.13.15
->0.14.0
0.13.15
->0.14.0
13.0.7
->13.0.8
8.3.11
->8.4.4
6.2.0
->6.2.1
1.43.4
->1.43.5
5.64.3
->5.64.4
4.5.0
->4.6.0
Release Notes
GoogleChromeLabs/critters
v0.0.15
Compare Source
document.head
(#87, thanks @rschristian!)visionmedia/debug
v4.3.3
Compare Source
Patch Release 4.3.3
This is a documentation-only release. Further, the repository was transferred. Please see notes below.
Thank you to @taylor1791 and @kristofkalocsai for their contributions.
Repository Migration Information
I've formatted this as a FAQ, please feel free to open an issue for any additional question and I'll add the response here.
Q: What impact will this have on me?
In most cases, you shouldn't notice any change.
The only exception I can think of is if you pull code directly from https://github.com/visionmedia/debug, e.g. via a
"debug": "visionmedia/debug"
-type version entry in your package.json - in which case, you should still be fine due to the automatic redirection Github sets up, but you should also update any references as soon as possible.Q: What are the security implications of this change?
If you pull code directly from the old URL, you should update the URL to https://github.com/debug-js/debug as soon as possible. The old organization has many approved owners and thus a new repository could (in theory) be created at the old URL, circumventing Github's automatic redirect that is in place now and serving malicious code. I (@qix-) also wouldn't have access to that repository, so while I don't think it would happen, it's still something to consider.
Even in such a case, however, the officially released package on npm (
debug
) would not be affected. That package is still very much under control (even more than it used to be).Q: What should I do if I encounter an issue related to the migration?
Search the issues first to see if someone has already reported it, and then open a new issue if someone has not.
Q: Why was this done as a 'patch' release? Isn't this breaking?
No, it shouldn't be breaking. The package on npm shouldn't be affected (aside from this patch release) and any references to the old repository should automatically redirect.
Thus, according to all of the "APIs" (loosely put) involved, nothing should have broken.
I understand there are a lot of edge cases so please open issues as needed so I can assist in any way necessary.
Q: Why was the repository transferred?
I'll just list them off in no particular order.
debug
ecosystem intends to grow beyond a single package, and since new packages could not be created in the old org (nor did it make sense for them to live there), a new org made the most sense - especially from a security point of view.Q: Was this approved?
Yes.[archive]
Q: Do I need to worry about another migration sometime in the future?
No.
evanw/esbuild
v0.14.0
Compare Source
This release contains backwards-incompatible changes. Since esbuild is before version 1.0.0, these changes have been released as a new minor version to reflect this (as recommended by npm). You should either be pinning the exact version of
esbuild
in yourpackage.json
file or be using a version range syntax that only accepts patch upgrades such as~0.13.0
. See the documentation about semver for more information.Add support for TypeScript's
preserveValueImports
setting (#1525)TypeScript 4.5, which was just released, added a new setting called
preserveValueImports
. This release of esbuild implements support for this new setting. However, this release also changes esbuild's behavior regarding theimportsNotUsedAsValues
setting, so this release is being considered a breaking change. Now esbuild's behavior should more accurately match the behavior of the TypeScript compiler. This is described in more detail below.The difference in behavior is around unused imports. By default, unused import names are considered to be types and are completely removed if they are unused. If all import names are removed for a given import statement, then the whole import statement is removed too. The two
tsconfig.json
settingsimportsNotUsedAsValues
andpreserveValueImports
let you customize this. Here's what the TypeScript compiler's output looks like with these different settings enabled:Previously, since the
preserveValueImports
setting didn't exist yet, esbuild had treated theimportsNotUsedAsValues
setting as if it were what is now thepreserveValueImports
setting instead. This was a deliberate deviation from how the TypeScript compiler behaves, but was necessary to allow esbuild to be used as a TypeScript-to-JavaScript compiler inside of certain composite languages such as Svelte and Vue. These languages append additional code after converting the TypeScript to JavaScript so unused imports may actually turn out to be used later on:Previously the implementers of these languages had to use the
importsNotUsedAsValues
setting as a hack for esbuild to preserve the import statements. With this release, esbuild now follows the behavior of the TypeScript compiler so implementers will need to use the newpreserveValueImports
setting to do this instead. This is the breaking change.TypeScript code follows JavaScript class field semantics with
--target=esnext
(#1480)TypeScript 4.3 included a subtle breaking change that wasn't mentioned in the TypeScript 4.3 blog post: class fields will now be compiled with different semantics if
"target": "ESNext"
is present intsconfig.json
. Specifically in this caseuseDefineForClassFields
will default totrue
when not specified instead offalse
. This means class field behavior in TypeScript code will now match JavaScript instead of doing something else:In TypeScript 4.2 and below, the TypeScript compiler would generate code that prints
set 123
whentsconfig.json
contains"target": "ESNext"
but in TypeScript 4.3 and above, the TypeScript compiler will now generate code that doesn't print anything. This is the difference between "assign" semantics and "define" semantics.Previously you had to create a
tsconfig.json
file and specify"target": "ESNext"
to get this behavior in esbuild. With this release, you can now also just pass--target=esnext
to esbuild to force-enable this behavior. Note that esbuild doesn't do this by default even though the default value of--target=
otherwise behaves likeesnext
. Since TypeScript's compiler doesn't do this behavior by default, it seems like a good idea for esbuild to not do this behavior by default either.In addition to the breaking changes above, the following changes are also included in this release:
Allow certain keywords as tuple type labels in TypeScript (#1797)
Apparently TypeScript lets you use certain keywords as tuple labels but not others. For example,
type x = [function: number]
is allowed whiletype x = [class: number]
isn't. This release replicates this behavior in esbuild's TypeScript parser:Allowed keywords:
false
,function
,import
,new
,null
,this
,true
,typeof
,void
Forbidden keywords:
break
,case
,catch
,class
,const
,continue
,debugger
,default
,delete
,do
,else
,enum
,export
,extends
,finally
,for
,if
,in
,instanceof
,return
,super
,switch
,throw
,try
,var
,while
,with
Support sibling namespaces in TypeScript (#1410)
TypeScript has a feature where sibling namespaces with the same name can implicitly reference each other's exports without an explicit property access. This goes against how scope lookup works in JavaScript, so it previously didn't work with esbuild. This release adds support for this feature:
Notice how the identifier
y
is now compiled to the property accessx2.y
which references the export namedy
on the namespace, instead of being left as the identifiery
which references the global namedy
. This matches how the TypeScript compiler treats namespace objects. This new behavior also works for enums:Note that this behavior does not work across files. Each file is still compiled independently so the namespaces in each file are still resolved independently per-file. Implicit namespace cross-references still do not work across files. Getting this to work is counter to esbuild's parallel architecture and does not fit in with esbuild's design. It also doesn't make sense with esbuild's bundling model where input files are either in ESM or CommonJS format and therefore each have their own scope.
Change output for top-level TypeScript enums
The output format for top-level TypeScript enums has been changed to reduce code size and improve tree shaking, which means that esbuild's enum output is now somewhat different than TypeScript's enum output. The behavior of both output formats should still be equivalent though. Here's an example that shows the difference:
The function expression has been changed to an arrow expression to reduce code size and the enum initializer has been moved into the variable declaration to make it possible to be marked as
/* @​__PURE__ */
to improve tree shaking. The/* @​__PURE__ */
annotation is now automatically added when all of the enum values are side-effect free, which means the entire enum definition can be removed as dead code if it's never referenced. Direct enum value references within the same file that have been inlined do not count as references to the enum definition so this should eliminate enums from the output in many cases:Notice how the new output is much shorter because the entire definition for
Bar
has been completely removed as dead code by esbuild's tree shaking.The output may seem strange since it would be simpler to just have a plain object literal as an initializer. However, TypeScript's enum feature behaves similarly to TypeScript's namespace feature which means enums can merge with existing enums and/or existing namespaces (and in some cases also existing objects) if the existing definition has the same name. This new output format keeps its similarity to the original output format so that it still handles all of the various edge cases that TypeScript's enum feature supports. Initializing the enum using a plain object literal would not merge with existing definitions and would break TypeScript's enum semantics.
Fix legal comment parsing in CSS (#1796)
Legal comments in CSS either start with
/*!
or contain@preserve
or@license
and are preserved by esbuild in the generated CSS output. This release fixes a bug where non-top-level legal comments inside a CSS file caused esbuild to skip any following legal comments even if those following comments are top-level:Fix panic when printing invalid CSS (#1803)
This release fixes a panic caused by a conditional CSS
@import
rule with a URL token. Code like this caused esbuild to enter an unexpected state because the case where tokens in the import condition with associated import records wasn't handled. This case is now handled correctly:Mark
Set
andMap
with array arguments as pure (#1791)This release introduces special behavior for references to the global
Set
andMap
constructors that marks them as/* @​__PURE__ */
if they are known to not have any side effects. These constructors evaluate the iterator of whatever is passed to them and the iterator could have side effects, so this is only safe if whatever is passed to them is an array, since the array iterator has no side effects.Marking a constructor call as
/* @​__PURE__ */
means it's safe to remove if the result is unused. This is an existing feature that you can trigger by manually adding a/* @​__PURE__ */
comment before a constructor call. The difference is that this release contains special behavior to automatically markSet
andMap
as pure for you as long as it's safe to do so. As with all constructor calls that are marked/* @​__PURE__ */
, any internal expressions which could cause side effects are still preserved even though the constructor call itself is removed:ng-packagr/ng-packagr
v13.0.8
Compare Source
postcss/postcss
v8.4.4
Compare Source
v8.4.3
Compare Source
this.css.replace is not a function
error.v8.4.2
Compare Source
v8.4.1
Compare Source
Stringifier
types (by James Garbutt).v8.4.0
Compare Source
PostCSS 8.4 brought ranges for warnings and errors, smaller
node_modules
size, lazy parsing to avoidPostCSS does nothing
warning, and TypeScript fixes.Thanks to Sponsors
This release was possible thanks to our community.
If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:
Rages for Errors and Warnings
@adalinesimonian, the author of amazing Stylelint extension for VS Code, added ranges to errors and warnings.
It will improve DX in the IDE extension.
Lazy Parsing
Previously, we found that many tools run PostCSS even if the developer didn’t pass any PostCSS plugins. Parsing is the most expensive step in CSS processing. It led to a waste of resources without any reason.
We tried to resolve the problem by adding a
PostCSS does nothing
warning. But it didn’t force tool authors to be more careful with user’s resources.If PostCSS sees that tool call it without passing plugins (or changing parser/stringifier), PostCSS will not parse CSS (until toll will call
Result#root
). In 8.4, @bogdan0083 (with the help of @WilhelmYakunin) tries to solve the problem in another way. It allows us to save resources and remove thePostCSS does nothing
warning.Install Size Reduction
With ≈60M weekly downloads, PostCSS has responsibility for the world’s resource spending.
Together with @7rulnik we reduced
source-map-js
size. It is transitive dependency of PostCSS.In 8.4, we moved to a fixed version of
source-map-js
, which reduced thepostcss
size in yournode_modules
from ≈1 MB to 0.3 MB. With the huge popularity of PostCSS, it will free a lot of resources on our CIs.@kimoofey refactored all tests from the popular Jest framework to small and fast
uvu
.It will not affect end-users. However, it reduced our
node_modules
size by 33 MB and made tests twice faster (yarn install & yarn unit
: 24 → 13 seconds).TypeScript Fixes
Processor
types.Stringifier
types (by @43081j).Root
andDocument
in result values (by @43081j).Node#walkRules()
types (by @hudochenkov).Other Changes
webpack-contrib/postcss-loader
v6.2.1
Compare Source
sass/dart-sass
v1.43.5
Compare Source
Fix a bug where calculations with different operators were incorrectly
considered equal.
Properly parse attribute selectors with empty namespaces.
JS API
own debugging purposes.
webpack/webpack
v5.64.4
Compare Source
Bugfixes
Performance
Developer Experience
webpack/webpack-dev-server
v4.6.0
Compare Source
Features
chokidar
options (#4025) (5026601)Bug Fixes
Configuration
📅 Schedule: "after 10pm every weekday,before 4am every weekday,every weekend" in timezone America/Tijuana.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by WhiteSource Renovate. View repository job log here.